Visit the SAP Forum

Languages : English | Dutch | French | Portugese | Italian



INTERVIEW EBOOK
Get 30,000 Interview Questions & Answers in an eBook.

Interview Success Kit - Get Success in Job Interviews



Send your Resume to 6000 Companies
START YOUR WEBSITE
India's Best Web Hosting Company

Sample HR Reports - Allocate Petrol Allowance


Home » HRM » Sample HR Reports


Two ABAP HR Programs, which are interconnected, the first takes employee numbers which should not be given Petrol allowance and the other program gives the petrol allowance to employees.

FIRST PRG
*********
REPORT  ZPETROL_EXCLUDE                         .

TABLES SSCRFIELDS.

SELECTION-SCREEN BEGIN OF SCREEN 100.
SELECTION-SCREEN SKIP 9.
PARAMETERS NUMBER(200) TYPE C.
SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN:
BEGIN OF LINE,
  PUSHBUTTON 2(10) TEXT-001 USER-COMMAND PROC,
END OF LINE.
SELECTION-SCREEN END OF SCREEN 100.

CALL SCREEN 100.

AT SELECTION-SCREEN.
CASE SSCRFIELDS.
WHEN 'PROC'.
SET PARAMETER ID: 'NUM' FIELD NUMBER.
CALL TRANSACTION 'ZP_PALLOWANCE'.
LEAVE TO SCREEN 0.
ENDCASE.



SECOND PRG ********** REPORT  ZPR_PETROL_ALLOWANCE NO STANDARD PAGE  HEADING                   . *-- Infotypes INFOTYPES : 0000, "Actions             0002, "Personal Data             0008. "Basic pay details *-- Tables TABLES : PERNR,   "Standard Selections for HR Master Data Reporting          PC207,   "Payroll Results: Results Table          PCL1,    "HR Cluster 1          PCL2,    "HR Cluster 2          T510,    "Pay scales          T549A,   "Payroll areas          T549Q,   "Payroll Periods          PA0002.  "Personal details *-- Internal Tables *-- Internal Table Declaration For Holding The Data DATA: BEGIN OF INT_PETROL OCCURS 0,         PERNR LIKE PA0008-PERNR,      "Personnel Number         TRFST LIKE PA0008-TRFST,      "Pay Scale Level         NAME(40),                     "Name of Employee         PALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount       END OF INT_PETROL. DATA: BEGIN OF PA0015_DATA OCCURS 0,         PERNR LIKE PA0015-PERNR,         BETRG LIKE PA0015-BETRG,       END OF PA0015_DATA. DATA:BEGIN OF INT_PETROL2 OCCURS 0,       PERNR LIKE PA0008-PERNR,      "Personnel Number       VORNA LIKE PA0002-VORNA,      "First Name       NACHN LIKE PA0002-NACHN,      "Last Name       TRFST LIKE PA0008-TRFST,      "Pay Scale Level       NAME(40),                     "Name of Employee       PALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount      END OF INT_PETROL2. DATA : TITLE TYPE LVC_TITLE. DATA:  BEGIN OF PER_NO OCCURS 0,         PERNR LIKE PA0008-PERNR,         TRFST LIKE PA0008-TRFST,        END OF PER_NO. DATA: BEGIN OF MSG OCCURS 0,       MSG1(100) TYPE C,       END OF MSG. DATA: FLAG TYPE I VALUE '0',       DIS_FLAG TYPE I VALUE '0'. DATA: INT_PETROL3 LIKE STANDARD TABLE OF INT_PETROL2 INITIAL SIZE 0  WITH HEADER LINE. DATA: INT_PETROL1 LIKE STANDARD TABLE OF INT_PETROL INITIAL SIZE 0 WITH  HEADER LINE. DATA: WA_PET_ALLOWANCE TYPE ZBPETROL_ALL.    "WORKAREA FOR INSERTING  VALUES. *DATA: P_LGART1 LIKE T512T-LGART VALUE '0010'.  "CHANGE WAGE TYPE HERE DATA: P_LGART1 LIKE T512T-LGART VALUE '0077'.  "CHANGE WAGE TYPE HERE DATA: BEGIN OF INT_0015 OCCURS 0,         PERNR(038),         BEGDA(010),         BETRG(018),       END OF INT_0015. *--  Internal Table To Store Error Records. DATA: E_INT_0015 LIKE INT_0015 OCCURS 0 WITH HEADER LINE. *-- Batch Input Data of Single Transaction DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. *-- Internal Table For Export and Import Payroll Results DATA: INT_RGDIR LIKE PC261 OCCURS 0 WITH HEADER LINE,       LGTXT LIKE T512T-LGTXT. DATA: BEGIN OF EMP_NO OCCURS 0,         PERNR(4) TYPE C,       END OF EMP_NO. DATA: BEGIN OF EMP_NO1 OCCURS 0,         PERNR TYPE I,       END OF EMP_NO1. DATA EMPNO LIKE STANDARD TABLE OF EMP_NO INITIAL SIZE 0. DATA EMPNO1 LIKE STANDARD TABLE OF EMP_NO1 INITIAL SIZE 0 WITH HEADER  LINE. DATA LEN1 TYPE I. DATA: ERR  LIKE MESSAGE. DATA TEMP_NUM(200) TYPE C. *-- Includes *-- International Include INCLUDE RPC2CD09.  "Cluster CD data definition INCLUDE RPC2CA00.  "Cluster CA Data-Definition INCLUDE RPPPXD00.  "Data Definition buffer PCL1/PCL2 Buffer INCLUDE RPPPXD10.
"Common part buffer PCL1/PCL2 INCLUDE RPPPXM00.  "Buffer Handling routine

*-- Country Specific Include
INCLUDE PC2RXIN0.  "Cluster IN data definition
INCLUDE RPC2RX09.

*-- ALV Declaration
TYPE-POOLS : SLIS.

DATA: INT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
      INT_EVENTS TYPE SLIS_T_EVENT,
      INT_LAYOUT TYPE SLIS_LAYOUT_ALV,
      WS_EVENTS TYPE SLIS_ALV_EVENT,
      WS_REPID LIKE SY-REPID.

*-- Initialization
INITIALIZATION.

  WS_REPID = SY-REPID.

*-- At Selection-Screen
START-OF-SELECTION.
  SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
  SELECTION-SCREEN BEGIN OF LINE.
  SELECTION-SCREEN COMMENT 1(30) TEXT-002.
  SELECTION-SCREEN POSITION 33.
  PARAMETERS: P_RATE TYPE P DECIMALS 2.
  SELECTION-SCREEN END OF LINE.
  SELECTION-SCREEN END OF BLOCK B1.

  SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-003.
  SELECTION-SCREEN BEGIN OF BLOCK B3.
  PARAMETERS: P_UPLOAD AS CHECKBOX,
              P_FG RADIOBUTTON GROUP G1,
              P_BG RADIOBUTTON GROUP G1.
  SELECTION-SCREEN END OF BLOCK B3.
  SELECTION-SCREEN BEGIN OF BLOCK B4.
  PARAMETERS: P_DI AS CHECKBOX.
  SELECTION-SCREEN END OF BLOCK B4.
  SELECTION-SCREEN END OF BLOCK B2.

AT SELECTION-SCREEN.

*-- Wate Type Text

  SELECT SINGLE LGTXT INTO LGTXT FROM T512T WHERE SPRSL = 'E' AND
                                  MOLGA = '40' AND LGART = P_LGART1 .

*-- Data Retrieval From Logical Database PNP
GET PERNR.

  PROVIDE PERNR FROM P0000 VORNA NACHN FROM P0002 BETWEEN PN-BEGDA AND 
PN-ENDDA.
    INT_PETROL1-PERNR = P0000-PERNR.
    CONCATENATE P0002-VORNA P0002-NACHN INTO INT_PETROL1-NAME SEPARATED 
BY SPACE.
  ENDPROVIDE.

*-- Clear Data
  CLEAR: RGDIR, INT_RGDIR.
  REFRESH: RGDIR, INT_RGDIR.

*-- Read All The Payroll Runs For An Employee
  CD-KEY-PERNR = PERNR-PERNR.
  RP-IMP-C2-CU.
  CHECK RP-IMP-CD-SUBRC EQ 0.

*-- Clear Data
  REFRESH: RT.

* Read IN Cluster.
  LOOP AT RGDIR WHERE FPBEG >= PN-BEGDA AND FPEND <= PN-ENDDA.
    MOVE-CORRESPONDING RGDIR TO INT_RGDIR.
    APPEND INT_RGDIR.
    CLEAR INT_RGDIR.
  ENDLOOP.

* Read the last record.
  SORT INT_RGDIR BY SEQNR DESCENDING.
  READ TABLE INT_RGDIR INDEX 1.
  RX-KEY-SEQNO = INT_RGDIR-SEQNR.
  RX-KEY-PERNR = PERNR-PERNR.
  RP-IMP-C2-IN.
  CHECK RP-IMP-IN-SUBRC EQ 0.

  READ TABLE RT WITH KEY LGART = P_LGART1.
  IF SY-SUBRC = 0.
    INT_PETROL1-PALLOWANCE = RT-BETRG.
  ENDIF.
  APPEND INT_PETROL1.
  CLEAR INT_PETROL1.

  SELECT TRFST PERNR
  INTO CORRESPONDING FIELDS OF TABLE PER_NO
  FROM PA0008
  WHERE TRFST LIKE 'L%'
  AND BET01 > 0.

  SORT PER_NO.
  DELETE ADJACENT DUPLICATES FROM PER_NO.

*-- END-OF-SELECTION.

END-OF-SELECTION.

  LOOP AT INT_PETROL1.
    READ TABLE PER_NO WITH KEY PERNR = INT_PETROL1-PERNR.
    IF SY-SUBRC = 0.
      INT_PETROL-TRFST = PER_NO-TRFST.
      MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING TRFST.
    ENDIF.
  ENDLOOP.

  SORT INT_PETROL1.
  DELETE ADJACENT DUPLICATES FROM INT_PETROL1.

  CONCATENATE 'From'  '  :  ' PN-BEGDA+6(2) '.' PN-BEGDA+4(2) '.' PN-
BEGDA+0(4)
  '   To' ' :  '  PN-ENDDA+6(2) '.' PN-ENDDA+4(2) '.' PN-ENDDA+0(4) 
INTO TITLE.

  IF P_DI = 'X'.    "TO DISPLAY PETROL ALLOWANCE ONLY
    IF PNPTIMRA = 'X'.      "CHECK OTHER PERIOD CHECKED
      DIS_FLAG = 1.
    ENDIF.

    IF PNPTIMR9 = 'X'.    "CHECK TO SEE CURRENT PERIOD SELECTED
* CASES - NO RATE GIVEN, RATE GIVEN
* CURRENT PERIOD UPLOADED BUT PAYROLL NOT WRITTEN SO NO RESULT FROM LDB
        SELECT RATE INTO P_RATE FROM ZBPETROL_ALL WHERE BEGDA = PN- BEGDA AND ENDDA = PN-ENDDA.
        ENDSELECT.
        IF SY-DBCNT = 0.
          MESSAGE I455(0) WITH 'NO PETROL RATE EXSISTS'.
        ELSE.
          FLAG = 1.
        ENDIF.  "OF SY-DBCNT

      IF P_RATE > 0 AND FLAG = 1. " PETROL RATE EXSISTS.
        SELECT PERNR SUM( BETRG ) INTO TABLE PA0015_DATA
        FROM PA0015
        WHERE BEGDA BETWEEN PN-BEGDA AND PN-ENDDA
        GROUP BY PERNR.

        SELECT A~PERNR A~TRFST B~VORNA B~NACHN
        INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
        FROM PA0008 AS A
        INNER JOIN PA0002 AS B ON B~PERNR = A~PERNR
        WHERE A~TRFST LIKE 'L%'
        AND A~BET01 > 0.

        SORT INT_PETROL3.
        DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
        REFRESH INT_PETROL1.

        LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport 
employee name
          CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO 
INT_PETROL2-NAME SEPARATED BY SPACE.
          MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
        ENDLOOP.

        LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
one 
table to another table
          READ TABLE PA0015_DATA WITH KEY PERNR = INT_PETROL2-PERNR.
          IF SY-SUBRC = 0.
            INT_PETROL-PERNR = INT_PETROL2-PERNR.
            INT_PETROL-TRFST = INT_PETROL2-TRFST.
            INT_PETROL-NAME = INT_PETROL2-NAME.
            INT_PETROL-PALLOWANCE = PA0015_DATA-BETRG.
            APPEND INT_PETROL TO INT_PETROL1.
          ENDIF.
        ENDLOOP.
        DIS_FLAG = 1.

      ENDIF.  "P_RATE > 0 AND FLAG = 1.

      IF P_RATE > 0 AND FLAG = 0.  "CURRENT PERIOD AND DATA NOT UPLOADED
        SELECT A~PERNR A~TRFST B~VORNA B~NACHN
        INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
        FROM PA0008 AS A
        INNER JOIN PA0002 AS B ON B~PERNR = A~PERNR
        WHERE A~TRFST LIKE 'L%'
        AND A~BET01 > 0.

        SORT INT_PETROL3.
        DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
        REFRESH INT_PETROL1.

        LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport 
employee name
          CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO 
INT_PETROL2-NAME SEPARATED BY SPACE.
          MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
        ENDLOOP.

        PERFORM GET_VALUE.  "TO CONVERT THE FIRST SCREEN PERNR INTO 
NUMBER FORMATE

        LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
one 
table to another table
          READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.
          IF SY-SUBRC <> 0.
            INT_PETROL-PERNR = INT_PETROL2-PERNR.
            INT_PETROL-TRFST = INT_PETROL2-TRFST.
            INT_PETROL-NAME = INT_PETROL2-NAME.
            APPEND INT_PETROL TO INT_PETROL1.
          ENDIF.
        ENDLOOP.

        PERFORM CAL_ALLOWANCE.
      ENDIF.  " OF P_RATE > 0
      DIS_FLAG = 1.
    ENDIF.  " OF CURRENT PERIOD CHECK.

  ENDIF.  " OF CHECK DISPLAY.

*----BDC
  IF P_UPLOAD = 'X'.
    IF PNPTIMRA = 'X'.      "CHECK OTHER PERIOD CHECKED
      MESSAGE I455(0) WITH 'Petrol Allowance cannot be uploaded'.
      LEAVE SCREEN.
    ENDIF.
    IF P_RATE > 0.
*      IF P_RATE > 0 OR P_RATE = 0.
      IF PNPTIMR9 = 'X'.    "CHECK TO SEE CURRENT PERIOD SELECTED
        WA_PET_ALLOWANCE-BEGDA = PN-BEGDA.
        WA_PET_ALLOWANCE-ENDDA = PN-ENDDA.
        WA_PET_ALLOWANCE-RATE = P_RATE.
        WA_PET_ALLOWANCE-CURR = 'INR'.
        INSERT INTO ZBPETROL_ALL VALUES WA_PET_ALLOWANCE.

        SELECT A~PERNR A~TRFST B~VORNA B~NACHN
        INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
        FROM PA0008 AS A
        INNER JOIN PA0002 AS B ON B~PERNR = A~PERNR
        WHERE A~TRFST IN ('L1' , 'L2' , 'L3')
        AND A~BET01 > 0.

        SORT INT_PETROL3.
        DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
        REFRESH INT_PETROL1.

        LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport 
employee name
          CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO 
INT_PETROL2-NAME SEPARATED BY SPACE.
          MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
        ENDLOOP.

        PERFORM GET_VALUE.  "TO CONVERT THE FIRST SCREEN PERNR INTO 
NUMBER FORMATE

        LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
one 
table to another table
          READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.
          IF SY-SUBRC <> 0.
            INT_PETROL-PERNR = INT_PETROL2-PERNR.
            INT_PETROL-TRFST = INT_PETROL2-TRFST.
            INT_PETROL-NAME = INT_PETROL2-NAME.
            APPEND INT_PETROL TO INT_PETROL1.
          ENDIF.
        ENDLOOP.

        PERFORM CAL_ALLOWANCE.
        DIS_FLAG = 1.

        SORT INT_PETROL1.
        LOOP AT INT_PETROL1.
          MOVE: INT_PETROL1-PERNR TO INT_0015-PERNR,
          INT_PETROL1-PALLOWANCE TO INT_0015-BETRG.
          CONCATENATE PN-ENDDA+6(2) PN-ENDDA+4(2) PN-ENDDA+0(4) INTO 
INT_0015-BEGDA SEPARATED BY '.'.
          APPEND INT_0015.
          CLEAR INT_0015.
        ENDLOOP.

        LOOP AT INT_0015.
          PERFORM F_BDCDATA.
          IF P_FG = 'X'.
            CALL TRANSACTION 'PA30' USING BDCDATA MODE 'A' UPDATE 'S'.
          ELSE.
            CALL TRANSACTION 'PA30' USING BDCDATA MODE 'N' UPDATE 'S'.
          ENDIF.

*-- Handling Error records.
          IF SY-SUBRC <> 0.

*-- Handling Error Messages
            PERFORM ERROR_MSG.
            MOVE-CORRESPONDING INT_0015 TO E_INT_0015.
            APPEND E_INT_0015.
            CLEAR E_INT_0015.
          ENDIF.
          REFRESH BDCDATA.
        ENDLOOP.

*-- Downloading Error Records.
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            FILENAME = 'C:\Errors.Txt'
            FILETYPE = 'ASC'
          TABLES
            DATA_TAB = E_INT_0015.

*-- Downloading Error Messages.
        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            FILENAME = 'C:\Err_Msg.Txt'
            FILETYPE = 'ASC'
          TABLES
            DATA_TAB = MSG.

      ENDIF.  " FOR CURRENT PERIOD
*   ENDIF.
    ELSE.
      MESSAGE I455(0) WITH 'Enter Petrol Rate'.
      LEAVE TO SCREEN 0.
    ENDIF.    " FOR PETROL RATE
  ENDIF.    " FOR UPLOAD

  IF DIS_FLAG = 1.
    INT_LAYOUT-SUBTOTALS_TEXT = TEXT-004.
    INT_LAYOUT-TOTALS_TEXT = TEXT-004.
    INT_LAYOUT-ZEBRA = 'X'.
    PERFORM FILL_FIELDCAT.
    PERFORM GET_EVENTS_ALV.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM = WS_REPID
        IS_LAYOUT          = INT_LAYOUT
        IT_FIELDCAT        = INT_FIELDCAT[]
        I_DEFAULT          = 'X'
        I_SAVE             = 'X'
        IT_EVENTS          = INT_EVENTS
      TABLES
        T_OUTTAB           = INT_PETROL1
      EXCEPTIONS
        PROGRAM_ERROR      = 1
        OTHERS             = 2.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ENDIF.

*&------------------------------------------------
--------------------*
*&      Form  GET_VALUE
*&------------------------------------------------
--------------------*
*       text
*-------------------------------------------------
--------------------*
FORM GET_VALUE.

  GET PARAMETER ID: 'NUM' FIELD TEMP_NUM.
  IF TEMP_NUM <> ''.
    LEN1 = STRLEN( TEMP_NUM ).
    PERFORM GET_PERNR.
    APPEND TEMP_NUM TO EMPNO.

    LOOP AT EMPNO INTO EMP_NO.

      CALL FUNCTION 'CHECK_AND_CONVERT_NUMERICS'
      EXPORTING
*     DFELD              = ' '
        DMZEI              = ','
        DTYPE              = 'STRING'
*     DYPNO              = ' '
        EFELD              = EMP_NO-PERNR
*     FNAME              = ' '
*     PROGR              = ' '
*     IMP_DECIMALS       = '0'
      IMPORTING
*     ERROR              =
       IFELD              = EMP_NO1-PERNR
       MESSG              = ERR
*     MSGLN              =
   .
      IF ( ERR-MSGID = '' ).
        APPEND EMP_NO1 TO EMPNO1.
        CLEAR EMP_NO1-PERNR.
      ELSE.
        MESSAGE I455(0) WITH 'Could not convert employee number'.
        LEAVE TO SCREEN 0.
      ENDIF.
    ENDLOOP.
  ENDIF.

ENDFORM.                    "GET_VALUE

*&------------------------------------------------
--------------------*
*&      Form  GET_PERNR
*&------------------------------------------------
--------------------*
*       text
*-------------------------------------------------
--------------------*
FORM GET_PERNR.
  SPLIT TEMP_NUM AT ',' INTO EMP_NO TEMP_NUM.
  APPEND EMP_NO TO EMPNO.
  CLEAR EMP_NO.
  SEARCH TEMP_NUM FOR ','.
  IF SY-SUBRC = 0.
    PERFORM GET_PERNR.
  ENDIF.
ENDFORM.                    "GET_PERNR

*&------------------------------------------------
---------------------*
*&      Form  ERROR_MSG
*&------------------------------------------------
---------------------*
*       text
*-------------------------------------------------
---------------------*
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------
---------------------*
FORM ERROR_MSG.

  IF SY-SUBRC <> 0.
    CALL FUNCTION 'FORMAT_MESSAGE'
      EXPORTING
        LANG = SY-LANGU
      IMPORTING
        MSG  = MSG-MSG1.
    APPEND MSG.
    CLEAR MSG.
  ENDIF.

ENDFORM.                    "ERROR_MSG

*&------------------------------------------------
--------------------*
*&      Form  F_BDCDATA
*&------------------------------------------------
--------------------*
*       text
*-------------------------------------------------
--------------------*
FORM F_BDCDATA.

  PERFORM BDC_DYNPRO      USING 'SAPMP50A' '1000'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=INS'.
  PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                INT_0015-PERNR.
  PERFORM BDC_FIELD       USING 'RP50G-TIMR6'
                                'X'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RP50G-CHOIC'.
  PERFORM BDC_FIELD       USING 'RP50G-CHOIC'
                                '0015'.
  PERFORM BDC_DYNPRO      USING 'MP001500' '2000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'Q0015-BETRG'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '/00'.
  PERFORM BDC_FIELD       USING 'P0015-LGART'
                                '0077'.        "CHANGE WAGE TYPE HERE 
ALSO
  PERFORM BDC_FIELD       USING 'Q0015-BETRG'
                                INT_0015-BETRG.
  PERFORM BDC_FIELD       USING 'P0015-WAERS'
                                'INR'.
  PERFORM BDC_FIELD       USING 'P0015-BEGDA'
                                 INT_0015-BEGDA.
  PERFORM BDC_DYNPRO      USING 'MP001500' '2000'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'P0015-LGART'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=UPD'.
  PERFORM BDC_FIELD       USING 'P0015-LGART'
                                '0077'.       "CHANGE WAGE TYPE HERE 
ALSO
  PERFORM BDC_FIELD       USING 'Q0015-BETRG'
                                INT_0015-BETRG.
  PERFORM BDC_FIELD       USING 'P0015-WAERS'
                                'INR'.
  PERFORM BDC_FIELD       USING 'P0015-BEGDA'
                                INT_0015-BEGDA.

ENDFORM.                    "F_BDCDATA

*&------------------------------------------------
---------------------*
*&      Form  BDC_DYNPRO
*&------------------------------------------------
---------------------*
*       text
*-------------------------------------------------
---------------------*
*      -->P_0732   text
*      -->P_0733   text
*-------------------------------------------------
---------------------*
FORM BDC_DYNPRO  USING    VALUE(P_0732) TYPE C
                          VALUE(P_0733) TYPE C.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = P_0732.
  BDCDATA-DYNPRO   = P_0733.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.

ENDFORM.                    " BDC_DYNPRO

*&------------------------------------------------
---------------------*
*&      Form  BDC_FIELD
*&------------------------------------------------
---------------------*
*       text
*-------------------------------------------------
---------------------*
*      -->P_0755   text
*      -->P_0756   text
*-------------------------------------------------
---------------------*
FORM BDC_FIELD  USING    VALUE(P_0755) TYPE C
                         VALUE(P_0756) TYPE C.
  CLEAR BDCDATA.
  BDCDATA-FNAM = P_0755.
  BDCDATA-FVAL = P_0756.
  APPEND BDCDATA.

ENDFORM.                    " BDC_FIELD

*&------------------------------------------------
--------------------*
*&      Form  CAL_ALLOWANCE
*&------------------------------------------------
--------------------*
*       text
*-------------------------------------------------
--------------------*
FORM CAL_ALLOWANCE.

  LOOP AT INT_PETROL1 INTO INT_PETROL.
    IF INT_PETROL-TRFST = 'L1'.
      INT_PETROL-PALLOWANCE = P_RATE * 100.   "CHANGE TO SELECT WHEN 
DISPLAY
    ELSEIF INT_PETROL-TRFST = 'L2'.
      INT_PETROL-PALLOWANCE = P_RATE * 150.
    ELSEIF INT_PETROL-TRFST = 'L3'.
      INT_PETROL-PALLOWANCE = P_RATE * 150.
    ELSEIF INT_PETROL-TRFST = 'L4'.
*  INT_PETROL-PALLOWANCE = P_RATE * 200.
    ELSEIF INT_PETROL-TRFST = 'L5'.
*  INT_PETROL-PALLOWANCE = P_RATE * 250.
    ENDIF.
    MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING PALLOWANCE.
  ENDLOOP.
ENDFORM.                    "CAL_ALLOWANCE

*&------------------------------------------------
---------------------*
*&      Form  FILL_FIELDCAT
*&------------------------------------------------
---------------------*
*       text
*-------------------------------------------------
---------------------*
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------
---------------------*
FORM FILL_FIELDCAT.

  INT_FIELDCAT-COL_POS = 1.
  INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
  INT_FIELDCAT-FIELDNAME = 'PERNR'.
  INT_FIELDCAT-SELTEXT_L = TEXT-005.
  INT_FIELDCAT-OUTPUTLEN = 10.
  INT_FIELDCAT-KEY = 'X'.
  APPEND INT_FIELDCAT.
  CLEAR INT_FIELDCAT.

  INT_FIELDCAT-COL_POS = 2.
  INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
  INT_FIELDCAT-FIELDNAME = 'NAME'.
  INT_FIELDCAT-SELTEXT_L = TEXT-006.
  INT_FIELDCAT-OUTPUTLEN = 25.
  INT_FIELDCAT-KEY = 'X'.
  APPEND INT_FIELDCAT.
  CLEAR INT_FIELDCAT.

  INT_FIELDCAT-COL_POS = 3.
  INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
  INT_FIELDCAT-FIELDNAME = 'TRFST'.
  INT_FIELDCAT-SELTEXT_L = TEXT-007.
  INT_FIELDCAT-OUTPUTLEN = 5.
  INT_FIELDCAT-KEY = 'X'.
  APPEND INT_FIELDCAT.
  CLEAR INT_FIELDCAT.

  INT_FIELDCAT-COL_POS = 4.
  INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
  INT_FIELDCAT-FIELDNAME = 'PALLOWANCE'.
  INT_FIELDCAT-SELTEXT_L = TEXT-008.
  INT_FIELDCAT-OUTPUTLEN = 16.
  INT_FIELDCAT-KEY = 'X'.
  APPEND INT_FIELDCAT.
  CLEAR INT_FIELDCAT.

ENDFORM.                    " FILL_FIELDCAT

*&------------------------------------------------
---------------------*
*&      Form  GET_EVENTS_ALV
*&------------------------------------------------
---------------------*
*       text
*-------------------------------------------------
---------------------*
*  -->  p1        text
*  <--  p2        text
*-------------------------------------------------
---------------------*
FORM GET_EVENTS_ALV.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE     = 1
    IMPORTING
      ET_EVENTS       = INT_EVENTS[]
    EXCEPTIONS
      LIST_TYPE_WRONG = 1
      OTHERS          = 2.

  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  READ TABLE INT_EVENTS INTO WS_EVENTS WITH KEY NAME = 
SLIS_EV_TOP_OF_PAGE.
  IF SY-SUBRC = 0.
    WS_EVENTS-FORM = 'TOP'.
    MODIFY INT_EVENTS FROM WS_EVENTS INDEX SY-TABIX.
  ENDIF.

ENDFORM.                    " GET_EVENTS_ALV

*&------------------------------------------------
--------------------*
*&      Form  TOP-OF-PAGE
*&------------------------------------------------
--------------------*
*       text
*-------------------------------------------------
--------------------*
FORM TOP.

*-- ALV Declarations

  DATA: WS_HEADER TYPE SLIS_T_LISTHEADER,
        WA_HEADER TYPE SLIS_LISTHEADER.

*-- Title

  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = TEXT-009.
  APPEND WA_HEADER TO WS_HEADER.
  CLEAR WA_HEADER.

  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = TITLE.
  APPEND WA_HEADER TO WS_HEADER.
  CLEAR WA_HEADER.

  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = ' '.
  APPEND WA_HEADER TO WS_HEADER.
  CLEAR WA_HEADER.

  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = ' '.
  APPEND WA_HEADER TO WS_HEADER.
  CLEAR WA_HEADER.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = WS_HEADER
      I_LOGO             = 'LOGO'.

ENDFORM.                    "TOP-OF-PAGE
A D V E R T I S E M E N T

A D V E R T I S E M E N T

S A P - R E S O U R C E S


Get Free SAP Resources:

Are you looking for:
  • SAP Jobs
  • Free SAP eBooks
  • SAP Softwares
  • SAP Tutorials
  • ERP Implementation Examples
Enter Email Address:
(Enter your email address above and we will instantly send you the download link to you, when you confirm your email.)
Search SAP Resources:
discussionDiscussion Center
Discuss
Discuss

Query

Feedback
Yahoo Groups
Y! Group
Sirfdosti Groups
Sirfdosti
Contact Us
Contact
Sign in

User Name:
Password:
Forget password? | Register


INTERVIEW EBOOK

Get 30,000 Interview Questions & Answers in an eBook.

Interview Success Kit - Get Success in Job Interviews


Send your Resume to 6000 Companies

SAP Resources

  • SAP Articles
  • SAP Books
  • SAP Certifications
  • SAP Companies
  • SAP Study Materials
  • SAP Events
  • SAP Faqs
  • SAP Jobs
  • SAP Job Consultants
  • SAP Links
  • SAP News
  • SAP Sample Papers
  • SAP Interview Questions
  • SAP Training Institutes
  •  
    SAP Tutorial

  • Introduction
  • SAP History
  • SAP Facts
  • SAP Tables
  • SAP Function
  • SAP Report
  • Reasons To Use SAP
  • SAP Landscape
  • SAP Transaction Code
  • SAP Lotus Notes Integration
  • Business Connector and XML
  • Enterprise Release 4.7

  • SAP Training Institutes

  • SAP Training Institutes
  • Job Consultants Address
  • SAP Companies Address

  • Business Process Cycle

  • Analyze
  • Design
  • Implement
  • Operate
  • Optimize
  • Skills And Education

  • Logistics Module

  • Sales and Distribution
  • Quality Management
  • Materail Management
  • Plant Maintenance
  • Financial Modules (FI/CO)
  • Project system
  • Production Planning
  • Service Management

  • SAP NetWeaver

  • Introduction
  • Object Model
  • Interoperability
  • Creating Web Apps
  • Java Connector
  • Advantages & Conclusion
  • Life Cycle Management
  • Composite Application Framework

  • SAP Tools

  • SQL Trace Tool
  • SAP CRM
  • SAP SRM
  • SAP SCM
  • SAP ERP
  • SAP BW

  • SAP Modules

  • SAP FI Module
  • SAP CO Module

  • SAP Technical

  • SAP ITS Architecture
  • Financial Management
  • Manufacturing Planning and Execution
  • Customer Order Management
  • Lackbox Processing
  • SD and Financial Accounting Integration
  • SAP - HR (Human Resource)

  • SAP Miscellanous

  • Web Application Server(WAS)
  • Data Archiving
  • Mobile Engine
  • SAP Script
  • SAP Transactions
  • SAP Business Warehouse(BW)

  • SAP Reference

  • SAP Facts
  • SAP Tables
  • SAP Function
  • SAP Report
  • SAP Landscape

  • SAP Others

  • SAP Treasury
  • SAP Finance
  • SAP WAS
  • SAP Data Archiving
  • SAP ALE
  • SAP EDI
  • SAP Exchange
  • SAP X-APPS
  • SAP Applications Components
  • SAP Software
  • Dunning
  • SAP IDES
  • SAP Payroll Basics
  • SAP BASIS and Security Authorization
  • SAP Backup
  • SAP Router

  • ABAP Tutorials

  • Introduction
  • ABAP Transaction
  • ABAP Function
  • ABAP File Processing
  • ABAP Objects
  • ABAP Syntax
  • ABAP Queries
  • SAPMail Using ABAP
  • ABAP Programming Hints

  • SAP Projects & Codes

  • Finding the user-exits
  • Purchase Order Display
  • Batch Input
  • Dynamic Open SQL
  • Creating Extract Dataset
  • Reading database tables
  • Load table from a UNIX file
  • Create subscreen

  • SAP Resources

  • SAP Books
  • SAP Links

  • Interview Question



  • Common Interview Que.
  • ABAP Interview Que.
  • ERP Interview Que.
  • HR Interview Que.
  • MM Interview Que.
  • PP Interview Que.
  • ALE Interview Que.
  • EDI Interview Que.
  • Basis Interview Questions
  • SAP-SD Interview Questions
  • FI&CO Interview Questions
  • BW Interview Questions
  • CRM Interview Questions
  • Interview Questions

  • Careers at SAP

  • Careers in SAP (SAP Jobs)
  • Advertise
  •